<template>
  <label @click.stop for="id">
    <el-rate :allow-half="allowHalf" v-model="valueModel" @change="onchange"></el-rate>
  </label>
</template>

<script setup lang="ts">
import {UseValueModel, useValueModel, useValidator, ModifiedMethod} from "@/widget/data-table/use-value-model";

/**
 * 行内输入框
 */
interface Props extends /* @vue-ignore */  UseValueModel {
    // 字段名
    property: string
    // 行级数据
    row: Record<string, any>
    // 默认值（单向输入，需要通过 change 事件侦听变化）
    value?: boolean | number | string
    // 数据变化事件
    change?: ModifiedMethod

    // 文字提示
    placeholder?: string
    // 是否可清除
    clearable?: boolean

    // 是否允许半星
    allowHalf?: boolean
}

// 设置默认值
const props = withDefaults(defineProps<Props>(), {
    allowHalf: false,
    value: '',
    placeholder: '请选择'
})

const {valueModel, onchange} = useValueModel(props);

const {validation} = useValidator(props);
</script>